Learn R Programming

bnlearn (version 5.0.1)

bn.fit utilities: Utilities to manipulate fitted Bayesian networks

Description

Assign, extract or compute various quantities of interest from an object of class bn.fit, bn.fit.dnode, bn.fit.gnode, bn.fit.cgnode or bn.fit.onode.

Usage

## methods available for "bn.fit"
# S3 method for bn.fit
fitted(object, ...)
# S3 method for bn.fit
coef(object, ...)
# S3 method for bn.fit
residuals(object, ...)
# S3 method for bn.fit
sigma(object, ...)
# S3 method for bn.fit
logLik(object, data, nodes, by.sample = FALSE, na.rm = FALSE, debug = FALSE, ...)
# S3 method for bn.fit
AIC(object, data, ..., k = 1)
# S3 method for bn.fit
BIC(object, data, ...)

## non-method functions for "bn.fit" identifiable(x, by.node = FALSE) singular(x, by.node = FALSE)

## methods available for "bn.fit.dnode" # S3 method for bn.fit.dnode coef(object, for.parents, ...)

## methods available for "bn.fit.onode" # S3 method for bn.fit.onode coef(object, for.parents, ...)

## methods available for "bn.fit.gnode" # S3 method for bn.fit.gnode fitted(object, ...) # S3 method for bn.fit.gnode coef(object, ...) # S3 method for bn.fit.gnode residuals(object, ...) # S3 method for bn.fit.gnode sigma(object, ...)

## methods available for "bn.fit.cgnode" # S3 method for bn.fit.cgnode fitted(object, ...) # S3 method for bn.fit.cgnode coef(object, for.parents, ...) # S3 method for bn.fit.cgnode residuals(object, ...) # S3 method for bn.fit.cgnode sigma(object, for.parents, ...)

Value

logLik() returns a numeric vector or a single numeric value, depending on the value of by.sample. AIC and BIC always return a single numeric value.

All the other functions return a list with an element for each node in the network (if object has class bn.fit) or a numeric vector or matrix (if object has class bn.fit.dnode, bn.fit.gnode,

bn.fit.cgnode or bn.fit.onode).

Arguments

object

an object of class bn.fit, bn.fit.dnode, bn.fit.gnode, bn.fit.cgnode or bn.fit.onode.

x

an object of class bn.fit.

nodes

a vector of character strings, the label of a nodes whose log-likelihood components are to be computed.

data

a data frame containing the variables in the model.

...

additional arguments, currently ignored.

k

a numeric value, the penalty coefficient to be used; the default k = 1 gives the expression used to compute AIC.

by.sample

a boolean value. If TRUE, logLik() returns a vector containing the log-likelihood of each observations in the sample. If FALSE, logLik() returns a single value, the log-likelihood of the whole sample.

by.node

a boolean value. if TRUE, identifiable() and singular() return a vector containing one value for each local distributions. If FALSE, identifiable() and singular() return a single value for the whole model.

na.rm

a boolean value, whether missing values should be used in computing the log-likelihood. See below for details. The default value is FALSE, and it only has an effect if by.sample = FALSE.

debug

a boolean value. If TRUE a lot of debugging output is printed; otherwise the function is completely silent.

for.parents

a named list in which each element contains a set of values for the discrete parents of the nodes. codef() and sigma() will only return the parameters associated with those parent configurations. (Only relevant for conditional Gaussian nodes.)

Author

Marco Scutari

Details

coef() (and its alias coefficients()) extracts model coefficients (which are conditional probabilities for discrete nodes and linear regression coefficients for Gaussian and conditional Gaussian nodes).

residuals() (and its alias resid()) extracts model residuals and fitted() (and its alias
fitted.values()) extracts fitted values from Gaussian and conditional Gaussian nodes. If the bn.fit object does not include the residuals or the fitted values for the node of interest both functions return NULL.

sigma() extracts the standard deviations of the residuals from Gaussian and conditional Gaussian networks and nodes.

logLik() returns the log-likelihood for the observations in data. If na.rm is set to TRUE, the log-likelihood will be NA if the data contain missing values. If na.rm is set to FALSE, missing values will be dropped and the log-likelihood will be computed using only locally-complete observations (effectively returning the node-average log-likelihood times the sample size). Note that the log-likelihood may be NA even if na.rm = TRUE if the network contains NA parameters or is singular.

The for.parents argument in the methods for coef() and sigma() can be used to have both functions return the parameters associated with a specific configuration of the discrete parents of a node. If for.parents is not specified, all relevant parameters are returned.

See Also

bn.fit, bn.fit-class.

Examples

Run this code
data(gaussian.test)
dag = hc(gaussian.test)
fitted = bn.fit(dag, gaussian.test)
coefficients(fitted)
coefficients(fitted$C)
str(residuals(fitted))

data(learning.test)
dag2 = hc(learning.test)
fitted2 = bn.fit(dag2, learning.test)
coefficients(fitted2$E)
coefficients(fitted2$E, for.parents = list(F = "a", B = "b"))

Run the code above in your browser using DataLab